package cn.com.system.service;

import javax.servlet.http.HttpServletRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import cn.com.system.entity.SysUser;
import cn.com.system.entity.SysUserIdentityEntity;
import cn.com.system.vo.res.LoginRespVO;
import cn.com.system.vo.res.UserOwnRoleRespVO;

/**
 * 用户 服务类
 *
 * @author wenbin
 * @version V1.0
 * @date 2020年3月18日
 */
public interface UserService extends IService<SysUser> {

	/**
	 * 注册
	 * 
	 * @param vo
	 *            vo
	 */
	void register(SysUser vo);

	/**
	 * 登陆
	 * 
	 * @param vo
	 *            vo
	 * @return LoginRespVO
	 */
	LoginRespVO login(SysUser vo, HttpServletRequest request);

	/**
	 * 更新用户信息
	 * 
	 * @param vo
	 *            vo
	 */
	void updateUserInfo(SysUser vo);

	/**
	 * 分页
	 * 
	 * @param vo
	 *            vo
	 * @return IPage
	 */
	IPage<SysUserIdentityEntity> pageInfo(SysUser vo);

	/**
	 * 添加用户
	 * 
	 * @param vo
	 *            vo
	 */
	void addUser(SysUser vo);

	/**
	 * 修改密码
	 * 
	 * @param vo
	 *            vo
	 */
	void updatePwd(SysUser vo);

	/**
	 * 根据userid获取绑定角色
	 * 
	 * @param userId
	 *            userId
	 * @return UserOwnRoleRespVO
	 */
	UserOwnRoleRespVO getUserOwnRole(String userId);

	/**
	 * 修改自己信息
	 * 
	 * @param vo
	 *            vo
	 */
	void updateUserInfoMy(SysUser vo);

	/**
	 * 忘记密码
	 * 
	 * @param vo
	 *            vo
	 */
	void forgetPwd(SysUser vo);

	void updateUserUnlock(SysUser sysUser);

	SysUser getUser(String id);


}
